package game;

import game.Person.Gender;

public class Constants {
	// Debug
	public static final boolean DEBUG = true;
	public static final String DEBUG_OPTION = "Debug";
	public static final String DEBUG_FIRST_NAME = "Matt";
	public static final String DEBUG_LAST_NAME = "Church";
	public static final Gender DEBUG_GENDER = Gender.MALE;
	public static final boolean LOG_EVENTS = true;
	public static final int LINE_WRAP = 60;

	// Time Constants
	public static final int ONE_MINUTE = 60 * 1000;
	public static final int ONE_HOUR = 60 * ONE_MINUTE;

	// Orientation
	public static final int CHANCE_GAY = 8;
	public static final int CHANCE_BISEXUAL = 12;
	public static final int CHANCE_STRAIGHT = 100 - CHANCE_GAY
			- CHANCE_BISEXUAL;

	// Attraction
	public static final int ATTRACTION_LOOKS_HIGH = 90;
	public static final int ATTRACTION_LOOKS_MEDIUM = 70;
	public static final int ATTRACTION_LOOKS_LOW = 50;
	public static final int ATTRACTION_TRAIT_WEIGHT = 20;
	public static final int ATTRACTION_LOOKS_WEIGHT = 80;
	public static final int ATTRACTION_LOOKS_MAX = 100;
	public static final int ATTRACTION_LOOKS_MIN = 0;
	public static final int TRAIT_COMPATIBILITY_WEIGHT = 20;
	public static final int TRAIT_COMPATIBILITY_MAX = 20;
	public static final int TRAIT_COMPATIBILITY_MIN = 0;

	// Looks
	public static final int BASE_LOOKS_MIN = 0;
	public static final int BASE_LOOKS_MAX = 80;
	public static final int LOOKS_MAX = 100;

	// Relationship
	public static final int RELATIONSHIP_MAX = 100;
	public static final int RELATIONSHIP_MIN = 0;

	// Longest time to reply in minutes
	public static final int REPLY_CUTOFF = 30;
	public static final int REPLY_MAX = 3 * ONE_MINUTE;
	public static final int REPLY_MIN = 0 * ONE_MINUTE;
	public static final int REPLY_VARIATION = 10;

	// Screens and Options
	public static final String CHARACTER_BUILDER_TITLE = "Character Builder";
	public static final String ACTION_SCREEN_TITLE = "Actions";
	public static final String MAIN_SCREEN_TITLE = "Main Menu";
	public static final String MESSAGES_SCREEN_TITLE = "Messages";
	public static final String BACK_TEXT = "Back";
	public static final String FORWARD_TEXT = "Forward";
	public static final String VIEW_PEOPLE = "View People";
	public static final String SEND_MESSAGE = "Message";
	public static final String SEND = "Send";
	public static final String MESSAGES = "Messages";
	public static final String SET_FIRST_NAME = "Set First Name";
	public static final String SET_LAST_NAME = "Set Last Name";
	public static final String SET_GENDER = "Set Gender";
	public static final String CONFIRM_OK = "Ok";
	public static final String START_NEW_GAME = "Start New Game";
	public static final String EXIT_GAME = "Exit Game";
	public static final String TITLE_SCREEN_TITLE = "<3 : A Game by Matt Church";

	// People
	public static final int NUM_NEW_PEOPLE_PER_HOUR = 10;
	public static final int ENERGY_MAX = 100;
	public static final int ENERGY_MINUTE_REGEN = 5;

	// Actions
	public static final String ACTION_WORKOUT = "Workout";
	public static final int ACTION_WORKOUT_CASH = 0;
	public static final int ACTION_WORKOUT_ENERGY = -25;
	public static final int ACTION_WORKOUT_LOOKS_CHANGE = 2;
	public static final int ACTION_WORKOUT_EXTRAVERSION_CHANGE = 2;
	public static final int ACTION_WORKOUT_DURATION = 60; // In minutes

	// Score
	public static final int SCORE_COUNT_MULTIPLIER = 5;
	public static final int SCORE_LENGTH_MINUTE_MULTIPLIER = 2;

	// Profile
	public static final String[] TRAIT_PROMPT = { "My friends say I'm",
			"People describe me as", "I see myself as", "I've been told I'm" };
	public static final String[] PROFILE_HEADER = { "Looking for love" };
	public static final String[] INTEREST_PROMPT = { "I love",
			"I spend my time", "I enjoy", "My favorite hobby is" };

	// Traits
	public static final int TRAIT_MIN = 0;
	public static final int TRAIT_MAX = 100;
	public static final int TRAIT_LITTLE_MIN = TRAIT_MIN;
	public static final int TRAIT_LITTLE_MAX = 33;
	public static final int TRAIT_SOME_MIN = TRAIT_LITTLE_MAX;
	public static final int TRAIT_SOME_MAX = 66;
	public static final int TRAIT_LOT_MIN = TRAIT_SOME_MAX;
	public static final int TRAIT_LOT_MAX = TRAIT_MAX;

	// Openness Trait
	public static final String[] OPENNESS_GREETINGS = { "Hello" };
	public static final String[] OPENNESS_GREETINGS_REPLY = { "Hello" };
	public static final String[] OPENNESS_LITTLE_DESCRIPTION = { "guarded",
			"reclusive", "conservative", "cautious" };
	public static final String[] OPENNESS_SOME_DESCRIPTION = { "imaginative",
			"approachable" };
	public static final String[] OPENNESS_LOT_DESCRIPTION = { "inventive",
			"adventurous" };

	// Conscientiousness Trait
	public static final String[] CONSCIENTIOUSNESS_GREETINGS = {"Hi" };
	public static final String[] CONSCIENTIOUSNESS_GREETINGS_REPLY = {"Hi" };
	public static final String[] CONSCIENTIOUSNESS_LITTLE_DESCRIPTION = {
			"very easy-going/careless", "a little easy-going/careless" };
	public static final String[] CONSCIENTIOUSNESS_SOME_DESCRIPTION = { "a little efficient/organized" };
	public static final String[] CONSCIENTIOUSNESS_LOT_DESCRIPTION = { "very efficient/organized" };

	// Extraversion Trait
	public static final String[] EXTRAVERSION_GREETINGS = { "Hey" };
	public static final String[] EXTRAVERSION_GREETINGS_REPLY = { "Hey" };
	public static final String[] EXTRAVERSION_LITTLE_DESCRIPTION = {
			"very solitary/reserved", "a little solitary/reserved" };
	public static final String[] EXTRAVERSION_SOME_DESCRIPTION = { "a little outgoing/energetic" };
	public static final String[] EXTRAVERSION_LOT_DESCRIPTION = { "very outgoing/energetic" };

	// Agreeableness Trait
	public static final String[] AGREEABLENESS_GREETINGS = { "Hello" };
	public static final String[] AGREEABLENESS_GREETINGS_REPLY = { "Hello" };
	public static final String[] AGREEABLENESS_LITTLE_DESCRIPTION = {
			"very cold/unkind", "a little cold/unkind" };
	public static final String[] AGREEABLENESS_SOME_DESCRIPTION = { "a little friendly/compassionate" };
	public static final String[] AGREEABLENESS_LOT_DESCRIPTION = { "very friendly", "compassionate" };

	// Neuroticism Trait
	public static final String[] NEUROTICISM_GREETINGS = { "Hi" };
	public static final String[] NEUROTICISM_GREETINGS_REPLY = { "Hi" };
	public static final String[] NEUROTICISM_LITTLE_DESCRIPTION = {
			"very secure", "confident" };
	public static final String[] NEUROTICISM_SOME_DESCRIPTION = { "a little sensitive", "easily frightened" };
	public static final String[] NEUROTICISM_LOT_DESCRIPTION = { "very sensitive", "nervous", "neurotic", "insecure" };

	// Interests
	public static final int INTEREST_MIN_NUM = 4;
	public static final int INTEREST_MAX_NUM = 7;
	public static final int INTEREST_MUSIC_CHANCE = 20;
	public static final int INTEREST_SPORT_CHANCE = 25;
	public static final int INTEREST_INSTRUMENT_CHANCE = 10;
	public static final int INTEREST_HOBBY_CHANCE = 15;
	public static final int INTEREST_OTHER_CHANCE = 30;

	// Music Interest
	public static final String[] MUSIC_TYPES = { "Rock", "Electronic",
			"Country", "Bluegrass", "Metal", "Indie", "Rap", "Hip-hop", "Jazz" };
	public static final String[] MUSIC_VERBS = { "listening to", "dancing to",
			"relaxing to" };

	// Sports Interest
	public static final String[] SPORT_TYPES = { "Hockey", "Basketball",
			"Baseball", "Golf", "Soccer", "Football" };
	public static final String[] SPORT_VERBS = { "playing", "watching" };

	// Instrument Interest
	public static final String[] INSTRUMENT_TYPES = { "Guitar", "Drums",
			"Bass Guitar", "Chelo", "Turn tables", "Piano" };
	public static final String[] INSTRUMENT_VERBS = { "playing", "jamming on",
			"relaxing to" };

	// Hobby Interest
	public static final String[] HOBBY_TYPES = { "Cars", "Computers",
			"Motorcycles" };
	public static final String[] HOBBY_VERBS = { "working on", "fixing",
			"tweaking", "building", "spending my weekend with" };

	// General Interest
	public static final String[] GENERAL_TYPES = { "Cats", "Dogs", "Birds",
			"Snakes", "Guns", "Drugs", "Partying", "Reading", "Paiting",
			"Photography", "Singing", "Television", "Comics" };
	public static final String[] GENERAL_VERBS = { "" };
}
